package com.example.demo.Jdk8NewFeatures;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;

/**
 * Created by alva on 18/6/28.
 */
public class EightInterfaceMain {
    public static void main(String[] args) {
        EightInterfaceImpl eight = new EightInterfaceImpl();
        eight.runMe();//runMe是default方法
        eight.up2Child(); //接口实现中的方法
        EightInterface.staticMe();//直接调用接口的静态方法
        //若类同时实现了接口a和接口b，并且接口a和b中都有default方法，实现类必须重写该方法，不然编译不通过。

        List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
        names.stream().map(String::toUpperCase).sorted((a, b) -> b.compareTo(a)).forEach(System.out::println);
        names.stream().map(String::toUpperCase).sorted((a, b) -> b.compareTo(a)).filter((s) -> s.startsWith("A"))
                .forEach(System.out::println);
        ;

        names.parallelStream().sorted().forEach(System.out::println);

        Optional<String> reduced = names.stream().sorted().reduce((s1, s2) -> s1 + "#" + s2);
        reduced.ifPresent(System.out::println);
    }
}
